package model;

import java.util.ArrayList;
import java.util.HashMap;

import exceptions.AttrBestaatInAttrGroepException;


public class AttribuutGroep {

	private String groepNaam;
	private String databankNaam;
	protected Tabel tabel;
	protected ArrayList<Attribuut> attributen;

	public AttribuutGroep(String groepNaam, String databankNaam, Tabel tabel) {
		this.groepNaam = groepNaam;
		this.databankNaam = databankNaam;
		this.tabel = tabel;
		this.attributen = new ArrayList<Attribuut>();
	}

	public void addAttribuut(Attribuut nieuwAttribuut) throws AttrBestaatInAttrGroepException {
		if(nieuwAttribuut != null) {
			boolean exists = false;
			for (Attribuut attribuut: attributen) {
				if (attribuut.getNaam().equals(nieuwAttribuut.getNaam())) {
					exists = true;
					throw new AttrBestaatInAttrGroepException("Attribuut " + attribuut.getNaam() + " bestaat al in attribuutgroep " + groepNaam);
				}
			}

			if (!exists) {
				attributen.add(nieuwAttribuut);
			}
		}
	}

	public String getGroepNaam() {
		return groepNaam;
	}

	public String getDatabankNaam() {
		return databankNaam;
	}

	public Tabel getTabel() {
		return tabel;
	}
	
	public ArrayList<Attribuut> getAttributen() {
		//TODO: HAAAAAAA MAG NIET ZO! foei foei foei
		return attributen;
	}

	public void setGroepNaam(String groepNaam) {
		this.groepNaam = groepNaam;
	}

	public void setDatabankNaam(String databankNaam) {
		this.databankNaam = databankNaam;
	}

	public void setTabel(Tabel tabel) {
		this.tabel = tabel;
	}
}
